1. Field of the Invention
The present invention relates to program developing systems, and particularly to a program developing system for producing executable programs from specification defining information provided by users.
2. Description of the Background Art
Various kinds of software system developing apparatus are now proposed and put into practice for automatizing software system production which has been manually conducted to implement desired specifications in a short time.
In such program developing apparatus, programming languages having grammar which in turn directly represents the control structures of programs are generally employed. In specification definition for describing specifications of a desired software system, a single kind of language is usually used. A user defines specifications of the desired software system employing only the grammar prepared in this particular program language. In defining of specifications of a software system employing only one program language as described above, the defining of specification is placed under restraint of the describing ability of the employed representation format, making it difficult to acquire a software system with a high completion level. Also, in the completed program, a single function is provided with a representation ability only on a single aspect which depends on the used language, so that the program has poor understandability.
Recently, program developing systems are now being proposed in which a plurality of program languages can be employed in a mixed manner in a software system development. In such systems, however, only a single language can be employed for defining an arbitrary single function in the desired software system, and each different function can only be defined by an individual language. In the CASE (Computer Aided Software Engineering) tool, for example, programs are produced on the basis of the structured analysis and structured design methods of desired software systems. In the structured analysis, functions of a system are hierarchically defined employing graphic representations easily understood by users, focusing on the data flow. In the structured design, the structure of a program is hierarchically designed employing graphic representations focusing on the calling relationship among modules (each function) composing the program. The CASE tool integrates the two functions and a software development at upstream process (requirement analysis and basic design) through modeling of a software system with simple graphic forms, hierarchical detailing of the requirement analysis, and the basic design based on the requirement analysis.
In the CASE tool, however, for a structured software system, a most suitable language is selected from a plurality of languages for each structure, and each individual function is described with a single language. Accordingly, in the CASE tool, although functions formed with individual languages are combined to form a single software system, each function unit is represented by a single programming language. Therefore, such a representation involves only a single aspect, leading to a completed program with poor understandability.
Also, regarding the linkage with the downstream process such as the detail design and the program production, some of the CASE tools can send such information as the program structures and the data structures obtained in the upstream process to the downstream process to be utilized thereat. In this case, however, an executable program is not automatically produced but is only reserved as documents. Also, in many of them, there still remain some portions in which desired information of data is transplanted depending on a conventional programming method in linkage from the upstream process to the downstream process.
In a certain tool of the upstream process, the basic design is hierarchically detailed and the specifications at the level at which they requires no further detailing any more are described with the pseudo coding which is a programming method of a normal text type different from the method of the upstream process, in order to produce programs.
In such a case, although the produced software system has a hierarchical structure, individual level does not become executable independently, but a single function becomes executable when all the levels are formed. It is impossible to automatically produce an executable program with respect to each level with a developing apparatus maintaining the linkage relationship of respective levels, so that the simulation at each level and the verification thereof can not be done.